Lab 使用 EmployeeEntity 的資料進行 Forms 身分驗證。
登入表單設計參考 Thibaut Courouble 的 login-form 範本,再加入 Bootstrap 的 Icon glyphs 進行小幅度修改。
上一篇後台內建資料,新增管理者帳號與密碼為 admin / IronMan6,其中密碼採用非對稱加密,在進行密碼比對時,可以使用 Kuick.Checker 類別裡的 IsMatch 方法進行比對,整段的帳密驗證程式摘錄如下:
if(!string.IsNullOrEmpty(EmployeeID) && !string.IsNullOrEmpty(Password)) {
try {
EmployeeEntity employee = EmployeeEntity.Get(EmployeeID);
if(null == employee) {
lblMessage.Text = "EmployeeID 錯誤";
lblMessage.Visible = true;
return;
}
if(!Checker.IsMatch(employee.Password, Password, Encryption.Asymmetry)) {
lblMessage.Text = "Password 錯誤";
lblMessage.Visible = true;
return;
}
FormsAuthentication.RedirectFromLoginPage(employee.EmployeeID, false);
} catch(Exception ex) {
Logger.Error(WebTools.GetCurrentFullPath(), ex);
lblMessage.Visible = true;
lblMessage.Text = "系統錯誤";
}
}